This application is based upon and claims the benefit of priority from the prior Japanese Patent Application No. 11-217146, filed Jul. 30, 1999, the entire contents of which are incorporated herein by reference.
The present invention relates to a disk array controller for controlling access to a disk array comprised of a plurality of disk drives and, more particularly, to a disk array controller having a distributed parity generation function.
A disk array system known as an external storage system comprising a plurality of disk drives and a disk array controller for controlling access to the disk drives. In this system, to shorten the access period, the disk array controller accesses each disk device in parallel.
The disk array controller generates parity data by exclusive OR operation for reconstructing data from host computer and stored the parity data in a disk drive or disk drives.
When one of the disk devices has failed, the disk controller reconstructs the data on that disk device by exclusive OR operation using the parity data and the data from remaining disk devices.
A RAID (Redundant Arrays of Inexpensive Disks) is known as a data redundancy system using a parity data or the like. The RAID system is characterized in various architectures. Some popular RAID architectures are RAID3 and RAID5.
A RAID3 architecture suitable for sequential access (or a job requiring sequential access) is for transferring a large amount of data. A RAID5 architecture suitable for random access (or a job requiring random access) is for frequently read/write-accessing a small amount of data.
A disk array controller generally includes a cache memory (disk cache) for temporarily storing transfer data between a disk drive and a host computer.
With the above arrangement, when data to be read out is stored in the cache memory, the data can be accessed from this cache memory at high speed without accessing disk drives (accompanying mechanical access operation) regardless of the RAID level such as RAID3 or RAID5.
In the RAID3, update data transferred from the host computer is segmented, and the segmented update data are exclusively ORed to generate an update parity.
In the RAID5, update data transferred from the host computer, data prior to updating and stored in a disk drive area serving as the storage destination of the update data, and parity (parity data) prior to updating and stored in another disk drive area corresponding to the storage destination of the update data are exclusively ORed to generate an update parity.
In a conventional disk array controller, a single dedicated circuit or software (firmware program in the controller) generally generates the update parity described above.
According to this conventional parity generation technique, however, parity data cannot be executed in parallel, and data update processing or data restoration (data reconstruction) processing caused by the failure of a disk drive is time-consuming.
The present invention has been made in consideration of the above situation, and has as its object to provide a disk array controller wherein parity generation is distributed in units of stripes, and parity data are generated by a plurality of parity generators in parallel to allow an increase in speed in data update processing and then data restoration processing caused by the failure of a disk drive.
According to the present invention, there is provided a disk array controller for controlling access to a disk array made up of a plurality of disk drives which store data, transferred from a host computer, to be distributed in units of strips forming stripes, comprising: a plurality of disk cache means arranged in units of striping groups each made up of predetermined stripes, wherein each of the plurality of disk cache means comprises a cache memory for temporarily storing in units of blocks stripes belonging to a corresponding striping group and a parity generator having an exclusive OR operation function of generating parity data for an externally designated stripe in units of blocks; and main controller for determining disk cache memory unique to a striping group to which the stripe serving as a parity generation target belongs, and causing a parity generator in the corresponding disk cache memory to read, via the cache memory in the determined disk cache memory, block data necessary for generating updated parity data for the stripe in units of blocks, thereby generating the corresponding parity data by the corresponding parity generator.
Parity data are generated by cache memories and parity generators (i.e., disk cache means having the parity generators) different in units of striping groups made up of predetermined stripes. The parity data can be generated in parallel for a plurality of stripes.
Letting i be the identification number of the strip as the parity generation target, and N be the number of disk cache means, the disk cache means unique to the striping group represented by a remainder of i/N is used. Assume that the number of stripes serving as the parity generation targets is N. In this case, when the striping groups to which the N stripes belong are different from each other, the parity data for the N stripes can be generated in parallel using different cache disk means.
This arrangement can be applied when one of the plurality of disk drives has failed and the data of the failed disk drive is restored using the data of the remaining disk drives. More specifically, when the disk cache means determined by the striping groups to which the stripes of the disk drives except the failed disk drive belong exclusively OR, in units of blocks (at identical bit positions), the strips (excluding the strips of the failed disk drive) constructing the stripes, the data can be restored in parallel using the plurality of disk cache means.
Additional objects and advantages of the invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the invention. The objects and advantages of the invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out hereinafter.